// import com.alibaba.druid.sql.ast.SQLCommentHint;
// import com.alibaba.druid.sql.ast.SQLStatement;
// import com.alibaba.druid.sql.ast.SQLStatementImpl;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;

// import java.util.ArrayList;
// import java.util.List;
#pragma once
#include "../SQLStatementImpl.h"
#include "../../../utils/common_ptr.h"

class SQLLoopStatement : public SQLStatementImpl
{
public:
  string_ptr labelName;

  SQLStatement_list_ptr statements;

  SQLLoopStatement();
  SHAREDOBJECT(SQLLoopStatement);

  // @Override
  void accept0(SQLASTVisitor_ptr visitor);

  SQLStatement_list_ptr getStatements();

  string_ptr getLabelName();

  void setLabelName(string_ptr labelName);

  void addStatement(SQLStatement_ptr stmt);

  // @Override
  SQLStatement_list_ptr getChildren();

  // @Override
  SQLObject_ptr clone();

  virtual string_ptr getClass() { return make_string_ptr("SQLLoopStatement"); }
};
